1. Field of the Invention
The present disclosure herein relates to digital signal processing, and more particularly, to a flip-flop circuit having a scan function.
2. Description of the Related Art
Semiconductor devices, and processors in particular, continue to decrease in size relative to the amount of data processed. As data speed and volume increase, it becomes challenging to keep power consumption of the semiconductor device low.
High-performance circuits may utilize dynamic circuitry to increase processing speed. System clocks have jitter, or variations in high or low levels, especially during rising and falling edges of the clock signal. While static circuitry may be affected by jitter, dynamic circuitry is not affected to the same extent. While static circuitry utilizes signals that are locked in at a rising (or falling) clock signal and held for a duration of a high or low clock period, dynamic circuitry allows a signal to rise or fall during a clock high (or low) period, and the signal is held until the next changing clock edge. For example, in the dynamic circuit if the input signal is low at a rising clock edge but changes to a high level during the high level of the clock, an output signal may be changed to high and held at a high level until the falling edge of the clock. Dynamic logic allows a circuit to operate with a higher processing speed, but may also consume more power than a static logic circuit.
Semi-dynamic flip-flops are capable of dynamically processing inputs to output a static output. In other words, inputs of the semi-dynamic flip-flop may change although the output is held constant until a clock signal triggers the flip-flop, at which point, a value of a dynamic input may become the new output value. Semi-dynamic flip-flops are more efficient than master/slave flip-flops and static pulsed flip-flops. Semi-dynamic flip-flops may be used in a variety of circuits, including translation lookaside buffers (TLB), and arithmetic logic units (ALU). A translation lookaside buffer is a CPU cache that memory management hardware uses to improve virtual address translation speed. An ALU is a digital circuit that performs arithmetic and logical operations and is the building block of central processing units (CPU). Even the simplest microprocessors include ALUs to maintain timers, for example.
Scan testing may be used to test semiconductor chips. In scan-based semiconductor designs, a series of registers may be connected to form serial shift register chains to capture any combinational logic faults among the serially-connected registers.
However, conventional circuits utilizing scan circuitry may require additional hardware, such as additional transistors, which may decrease an output time of the circuit, increase a hold time of a signal, and thus degrade the performance of the circuit.